package com.example.demo.model;

import java.util.HashMap;

/**
 * @author hankChan
 *         2018/1/3 0003.
 */
public class ApiResult extends HashMap<String, Object> {

    private static final long serialVersionUID = 4358197524158263404L;

    /**
     * 获取实例
     * @return 实例
     */
    public static ApiResult prepare() {
        return new ApiResult();
    }

    private ApiResult() {}

    /**
     * 调用成功返回结果
     * @param result 调用结果数据
     * @return 响应实体
     */
    public ApiResult success(Object result) {
        this.put("is_success", true);
        this.put("result", result);
        this.put("code", "200");
        this.put("msg", "");
        return this;
    }

    /**
     * 调用成功返回结果
     * @param result 调用结果数据
     * @param code 说明码
     * @param msg 其他信息
     * @return 响应实体
     */
    public ApiResult success(Object result, String code, String msg) {
        this.put("is_success", true);
        this.put("result", result);
        this.put("code", code);
        this.put("msg", msg);
        return this;
    }

    /**
     * 调用失败返回结果
     * @param result 调用失败为null或者其他错误信息
     * @param code 错误码
     * @param msg 其他信息
     * @return 响应实体
     */
    public ApiResult error(Object result, String code, String msg) {
        this.put("is_success", false);
        this.put("result", result);
        this.put("code", code);
        this.put("msg", msg);
        return this;
    }
}
